/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

var registroTipoMovimiento=null;
var winMantenerTipoMovimiento=null;

function gestionarTipoMovimiento(){
    
    var dsTipoMovimiento=new Ext.data.Store({
        autoDestroy: true,
        url: "lista-tipo-movimiento",
        reader: new Ext.data.JsonReader(
        {
            root: "tipomovimiento",
            fields:
            [
            {
                name: "ntimoIdentificador",
                type: "integer"
            },
            {
                name: "ctimoDescripcion",
                type: "string"
            },
            {
                name: "dtimoFechaCreacion"
            }
            ]
        })
    });
    dsTipoMovimiento.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar los perfiles"+response.responseText);
    });

    var grdTipoMovimiento=new Ext.grid.GridPanel({
        title: "Administrar Tipo Movimiento",
        store: dsTipoMovimiento,
        loadMask: false,
        height:470,
        width:1050,
        border:true,
        frame: true,
        plugins:[new Ext.ux.grid.Search({
            mode:'local',
            iconCls:false,
            minLength:2,
            width: 190
        })],
        columns:
        [new Ext.grid.RowNumberer(),
        {
            header: "Descripción Tipo Movimiento",
            dataIndex: "ctimoDescripcion",
            width: 200,
            sortable:true
        },{
            header: "Fecha Creacion",
            dataIndex: "dtimoFechaCreacion",
            width: 200,
            sortable:true
        }],
        tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
                mantenerTipoMovimiento(true);
            }
        }, '-', {
            text:'Modificar',
            iconCls:'icon-modify',
            handler: function(){
                mantenerTipoMovimiento(false);
            }
        },'-',{
            text:'Eliminar',
            iconCls:'icon-delete',
            handler: function(){
               eliminarTipoMovimiento();
            }
        }]

    });
    grdTipoMovimiento.on("beforerender",function(component){
        var div=document.getElementById("divContenido");
        var elemento=div.childNodes[0];
        if(elemento != null) div.removeChild(elemento);
    });
    var seleccionTipoMovimiento=grdTipoMovimiento.getSelectionModel();
    seleccionTipoMovimiento.on("rowselect",function(sm,fila,registro){
        registroTipoMovimiento=registro;
    });
    grdTipoMovimiento.render("divContenido");
    dsTipoMovimiento.load();
}

function mantenerTipoMovimiento(nuevo){
        var frmGestionarTipoMovimiento =new Ext.Panel({
            bodyBorder:true,
            height:400,
            bodyStyle: "background-color:#DFE8F6; border:0"
        });
        new Ajax.Request("frmGestionarTipoMovimiento.html",{
            method: "post",
            asynchronous:false,
            onSuccess: function(transport){
                frmGestionarTipoMovimiento.html=transport.responseText;
                winMantenerTipoMovimiento = new Ext.Window({
                    title: (nuevo ? 'Agregar ' : 'Modificar ') + 'Tipo de dato',
                    closeAction:'destroy',
                    width:410,
                    height:220,
                    x: 500,
                    y:200,
                    items:[frmGestionarTipoMovimiento],
                    shim:false,
                    modal:true,
                    maximizable:true,
                    minimizable:false,
                    animCollapse:false,
                    resizable:false,
                    constrainHeader:true,
                    bbar:[{
                            text:'Grabar',
                            iconCls:'icon-save',
                            handler: function(){
                                if (nuevo)
                                    insertarTipoMovimiento();
                                else

                                    actualizarTipoMovimiento();
                            }
                        }, '-', {
                            text:'Cancelar',
                            iconCls:'icon-cancel',
                            handler: function(){
                                winMantenerTipoMovimiento.destroy();
                            }
                        }]
                });
                winMantenerTipoMovimiento.show();
                winMantenerTipoMovimiento.focus();
                if (!nuevo){
                    $("frmgestionartipomovimiento").ntimoIdentificador.value = registroTipoMovimiento.data.ntimoIdentificador;
                    $("frmgestionartipomovimiento").ctimoDescripcion.value = registroTipoMovimiento.data.ctimoDescripcion;
                }
            },
            onFailure:function(t){
                Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+t.responseText);
            }
        });
    }

function insertarTipoMovimiento()
{
        new Ajax.Request("tipo-movimiento!agregar",{
            method:"post",
            parameters: $("frmgestionartipomovimiento").serialize(),
            onSuccess: function(transport){
                var operacion =transport.responseText.evalJSON();
                if (operacion.success){
                    Information("Aviso del Sistema",operacion.mensaje);
                }else{
                    Information("Aviso del Sistema",operacion.mensaje);
                }
                winMantenerTipoMovimiento.destroy();
                gestionarTipoMovimiento();
            },
            onFailure:function(transport){
                Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+transport.responseText);
            }
        });
}

function actualizarTipoMovimiento()
{
         new Ajax.Request("tipo-movimiento!modificar",{
        method:"post",
        parameters: $("frmgestionartipomovimiento").serialize(),
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.success){
                Information("Aviso del Sistema",operacion.mensaje);
            }else{
                Information("Aviso del Sistema",operacion.mensaje);
            }
            winMantenerTipoMovimiento.destroy();
            gestionarTipoMovimiento();
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+transport.responseText);
        }
      });
}

    function eliminarTipoMovimiento(){
    Ext.MessageBox.confirm("Confirmación", "Eliminar Registro", function(button){
            if(button=="yes"){
                new Ajax.Request("tipo-movimiento!eliminar",{
                    method:"post",
                    parameters:{
                        ntimoIdentificador: registroTipoMovimiento.data.ntimoIdentificador
                    },
                    onSuccess: function(transport){
                        var operacion = transport.responseText.evalJSON();
                        if (operacion.success){
                            Information("Aviso del Sistema",operacion.mensaje);
                        }else{
                            Information("Aviso del Sistema",operacion.mensaje);
                        }
                        gestionarTipoMovimiento();
                    },
                    onFailure: function(transport){
                        Information("Aviso del Sistema","Sucedio un error al intentar eliminar el registro"+transport.responseText);
                    }
                });
            }
        });
}